package org.zfes.snowier.cloud.zbss.pmp.service;

import java.util.List;
import java.util.Map;
import java.util.Optional;

import org.zfes.snowier.core.data.ComboboVo;
import org.zfes.snowier.core.data.DataSet;
import org.zfes.snowier.core.data.TreeVo;
import org.zfes.snowier.core.data.ZTreeVo;
import org.zfes.snowier.cloud.zbss.pmp.dto.PmpModuleCreateDto;
import org.zfes.snowier.cloud.zbss.pmp.dto.PmpRequiresCreateDto;
import org.zfes.snowier.cloud.zbss.pmp.dto.PmpRequiresUpdateDto;
import org.zfes.snowier.cloud.zbss.pmp.model.PmpRequires;
public interface IPmpRequiresService{

	 Optional<PmpRequires> loadPmpRequiresById(Long id);
	
	
	 DataSet loadPmpRequiresDataSet(Map<String, Object> params);
	 
 	void setPmpRequiresStatus(Long id, Byte status);

	void createPmpRequires(PmpRequiresCreateDto pmpRequiresDto);

	void updateModuleName(Long id,String newname);

	void updateOrderNum(Long id, Integer orderNum);

	void updatePmpRequires(PmpRequiresUpdateDto requiresUpdateDto);


	 Optional<TreeVo> loadRequiresTreeVo(Long projectId);
	 
	 List<ComboboVo> loadComboboVo(Long projectId,boolean firstEmpty);


	Long createRoot(Long projectId, String name);


	Long createModule(PmpModuleCreateDto moduleCreateDto);


	List<ZTreeVo> loadRequiresZTreeVo(Long projectId);
}